Aconselho ler as recomendações abaixo para evitar perder tempo com alguns fatos que você possa não conhecer ou estar desatento. Nada pior que perder um dia para ativar o IIS.
1 : Existem 'controles' que usamos em páginas ASP NET que são implementados via JavaScript e JQuery. Portanto, como não são executados pelo mecanismo ASP NET, você pode subir diretamente essas páginas asp.net sem configurar o site para ASP NET. Cito como exemplo os Validators (Range, Required Field, Custom, Regular Expression e Validation Summary).
2 : Outro ponto importante e que deve ser levado em conta é os serviços de alta prioridade que estão rodando no servidor. Costumamos colocar o serviço 'servidor web' separado do 'servidor de banco de dados' porque um serviço, literalmente, pára o outro. Mas na nossa máquina de casa vale tudo e algo mais.
3 : Se você tem o Visual Studio instalado na sua máquina ele usa o IIS Express para trabalhar.
Sendo assim recomendo que você ative o IIS em outra máquina que não tenha o Visual Studio.
Se você remover o IIS Express o Visual Studio não irá mais funcionar, nem sequer consegue criar
um novo projeto web. Cuidado. Mas fique certo que para o IIS Express para estar sobre controle do Visual
Studio algumas coisas foram definidas na instalação dos dois (IIS E Visual Studio) e isso impacta no IIS
local (não Express).
4 : Se você tem o Visual Studio instalado na sua máquina ele instalou o IIS Express.
Você também pode ter o Xamp e o serviço de publicação web chamado Apache pode estar rodando
na sua máquina.
O IIS Express é harmonioso com o Xamp porque é compartimentalizado, ou seja, os recursos que o IIS Express
usa o XAMP não usa e vice-versa. Contudo no IIS Local isso é bem diferente, ambos serviços publicam
o servidor web na porta 80 e o primeiro a entrar ganha e o segundo irá dar erro na inicialização.
Sendo assim só podemos usar um deles de cada vez. Temos que parar os que não vamos usar e
iniciar o que vamos utilizar. Um deles será o localhost na porta 80, mais de um não dá, a não ser em
porta diferente.
5 : Cuidado com a Configuração do IIS. Sempre comece de um ponto onde tudo funciona e termine num ponto onde tudo funciona.
Faça as modificações aos poucos e vá anotando o que foi modificado e a seguir teste a modificação,
mesmo as mais simples. Seja cuidadoso. Você viu que a instalação é demorada e ninguém quer perder tempo
com uma nova instalação.
6 : Ao instalar o IIS faça testes de funcionamento abrindo o web browser e digitando localhost.
Será aberto a página do item abaixo chamado 'Testando o serviço IIS da sua máquina'
que nada mais é que uma
página simples html que, com certeza, não usa o ASP NET.
Em seguida faça uma app ASP NET bem simples (
veja aqui um modelo
) e depois vá para as mais complexas como aquelas que usam
componentes externos como o MySQL. Um passo de cada vez mas na direção certa.
Teste também com uma app instalada dentro de uma pasta do root do site.
7 : Cuidado com o número de bits de sua aplicação.
Aplicações 32 bits 'falam' com aplicações 32 bits e o mesmo ocorre com as de 64 bits contudo
uma app de 32 bits 'NÃO' 'fala' com uma app de 64 bits e vice-versa.
Quando você compila sua aplicação pode definir se ela deverá ser compilada em 32 bits (x86) ou em
64 bits(x64).
Contudo a aplicação ASP NET pode chamar componentes externos como ADO, SMTP que devem
ter o mesmo número de bits que sua aplicação.
Por exemplo se você abaixar o ADO de 32 bits jamais poderá utilizar o SMTP na mesma
aplicação porque o SMTP é provido pelo sistema operacional que, normalmente hoje, é 64 bits.
O mesmo ocorre por exemplo com as bibliotecas. Me lembro de ter o mesmo problema com a biblioteca
Interop do Office em aplicações windows forms também.
8 : Se você tem alguma experiência na configuração do servidor IIS e entende um pouco de inglês
recomendo dar uma olhada no arquivo onde o framework foi instalado na sua máqina e visualizar o
arquivo dv_aspnetmmc.chm.
Normalmente o framework é instalado na pasta C:\Windows\Microsoft.NET\Framework para o framework 32
bits e C:\Windows\Microsoft.NET\Framework64 para o framework de 64 bits. Apesar de pequeno e estar
em ingles às vezes ajuda.
1 : Recomendo salvar o que for importante na pasta C:\INETPUB do IIS antigo antes de remover o IIS. A reinstalação não apaga os arquivos desta pasta mas nunca é bom dar chance pro azar.
Nota : O serviço IIS Express deposita alguns recursos na pasta C:\INETPUB e fecha a segurança para que você não apague esses arquivos. Se você tentar elininar o arquivo ele vai informar quem ou que serviço está usando o arquivo. Aconselho a não perturbar o IIS Express senão o Visual Studio pára de funcionar.
2 : Se você tem instalado o IIS na sua máquina e está dando erro na simples abertura de uma página
HTML no root do site eu aconselho a remover e reinstalar o IIS novamente pelo simples fato que
alguns consertos podem horas para ser consertados.
O objetivo inicial é ter o IIS rodando nossas aplicações o mais rápido e simples possível.
3 : A remoção do IIS requer a reinicialização do micro e se for num servidor isso é bem ruim.
Portanto pense bem antes de fazer as coisas. Aconselho a implementar a mudança numa máquina de
teste e depois que tiver certeza subir para produção.
Neste documento sempre que nos referimos ao IIS estamos falando do 'serviço de publicação web' feito pelo windows e NÃO IIS Express. Nunca mexa no IIS Express senão o Visual Studio pára de funcionar.
Pool de Aplicação : Cada aplicação rodando no servidor necessitará de um recurso do servidor IIS para ser executada. Esse 'Recurso' é chamado de 'Pool de Aplicação' que nada mais é que uma compartimentalização dos recursos usados pela aplicação com a intenção de isolar os serviços prestados no servidor. Isolando o serviços fazemos como se uma app crashar as demais continuem funcionando normalmente.
Se você entrar no 'Gerenciados de Serviços de Informações a Internet(IIS)' e clicar em 'Pool de Aplicativos' verá que existem alguns pools instalados e elas foram descritas em 'Configurações avançadas do servidor IIS' deste documento
Veja que podemos clicar e Parar/Iniciar/Reciclar um pool de aplicações. Este recurso é muito útil
quando alteramos uma aplicação e ela fica no cache do servidor e demora para ser atualizada. Reciclando
o 'Pool de aplicativos' a atualização é forçada e com isto ganhamos tempo.
Outra coisa que recomendo é parar e deixar parado os 'Pool de aplicativos' que não estiverem sendo
utilizados no servidor. Por exemplo, se você não está utilizando o framework 2.0 nas suas aplicações
porque deixar o pool do framework rodando na sua máquina?
Podemos ter um 'Pool de aplicativos' para um root de um site e todas as pastas dentro desse
root serão atendidas por este 'Pool de aplicativos'.
A desvantagem deste método é que um erro num ponto provocará problemas no 'Pool de aplicativos' e
este até poderá parar de funcionar no servidor. Por isso separar suas aplicações por 'Pool de aplicativos'
muitas vezes é boa ideia.
Você pode separar suas aplicações por 'Pool de aplicativos' e isto é bom porque isola sua app das outras apps rodando no servidor o que evita que um crash numa delas interfira com as demais. Note que cada 'Pool de aplicativos' roda como uma aplicação separada e isolada uma da outra o que vai exigir mais memória e disco do que se os 'Pool de aplicativos' fossem integrados.
O 'Pool de aplicativos' que define como a aplicação deve ser executada no servidor pode ser
configurada para ser compatível com o IIS6 (Classic) ou a nova do ASPNET (Integrado).
Para configurar a maneira como o pipeline do aplicativo deverá funcionar vá no gerenciado do IIS
e selecionar 'Configurações básicas' e definirmos como nossa ou clicar em
'Definir Padrões do Pool de Aplicativos' onde definimos como esses pools deverão funcionar.
As opções são:
Trabalhando neste modelo de pipeline o aplicativo se beneficiará do processamento de solicitação unificado
do IIS e ASP.NET.
Isso significa que a solicitação é processada pelos módulos nativos e gerenciados instalados e o ASP.NET
e terá a capacidade para processar todos os tipos de conteúdo dentro desse aplicativo específico.
Várias configurações adicionais e avançadas podem ser definidas clicando com o botão direito no
aplicativo específico pool e selecionando Configurações avançadas.
O modo Clássico se assemelha a um pool de aplicativos IIS 6.0 quando o servidor da web executa em um
processo no modo de isolamento. No IIS 7.0, os aplicativos ainda têm a oportunidade de funcionar como se
fossem servidos pelo IIS 6.0 e esta é a opção padrão apenas para o aplicativo ASP.NET 1.1.
Sendo assim apenas os módulos nativos serão executados na solicitação, então o IIS 7.0 entrega a
solicitação para o extensão aspnet_isapi.dll a ser processada pelo tempo de execução do ASP.NET. Portanto, o
IIS é capaz de processar o pedido com todos os módulos nativos instalados e ASP.NET terá outra rodada na
execução de seu módulos; a mesma maneira tradicional de executar aplicativos no IIS 6.0 quando configurado para
executado no modo de isolamento do processo de trabalho.
Ele será executado e processado como se estivesse hospedado em um ambiente IIS 6.0.
Podemos clicar num 'Pool de aplicativos' no gerenciado do IIS
e selecionar 'Configurações avançadas' ou clicar em
'Definir Padrões do Pool de Aplicativos' onde definimos como esses pools deverão funcionar.
Um dos itens do item 'Geral' chamado 'Habilitar aplicativos 32 bits' define se o pool deve
aceitar ou não aplicativos feitos em 32 bits. Note que todos os componentes do IIS devem ter o mesmo
número de bits. Definindo que o número de bits é 32 bits você, por exemplo, não poderia chamar
o serviço SMTP do windows porque, provavelmente, seu windows é 64 bits. O mesmo vale para o ADO do SQL e
do MySQL.
Quando o IIS é intalado já vem configurado um 'DefaultAppPool' rodando o ASP NET 4.0.
O 'serviço servidor web' local da sua máquina é feita pelo próprio sistema operacional (windows/Linux,etc.).
No caso do windows você precisa ter um windows que suporta o 'serviço de informações web'. Normalmente isto exige as versões Professional ou Enterprise do windows sendo que as versões Home, Basic não costumam ter esse serviço. Mas isso varia com a versão do windows.
Os arquivos do 'serviço servidor web' ficam na pasta C:\Windows\System32\inetsrv.
Lá encontramos o painel de gerenciamento do IIS (iis.msc), o gerenciador do IIS (InetMgr.exe),
todas as dlls que o IIS precisa para funcionar e a pasta 'config' que possui os arquivos
'administration.config', 'applicationHost.config', 'redirection.config'. Na pasta schema temos arquivos
xml definindo os campos e valores possíveis dentro dos configs.
Infelizmente esses arquivos são grandes e cheio de parâmetros e os utilitários de configuração trabalham apenas com alguns desses parâmetros e muitos deles temos que mexer à mão e isso é um risco muito grande, por isso faça alterações no config salvando o config antigo ou sabendo o que fez para voltar a alteração feita. Note que uma alteração no config só será efetiva na inicialização do serviço que ela configura. Se for a nível de servidor ('applicationHost.config') só reiniciando o serviço que os parâmetros alterados serão carregados e efetivados no processo
A seguir deixo alguns exemplos dos configs a nível de servidor IIS:
Nesta etapa faremos com que o windows instale o IIS na sua máquina.
1 - Abra o 'Painel de controle' do windows
2 - Selecione o item 'Programa e Recursos'
3 - Selecione 'Ativar ou Desativar recursos do windows' no painel à esquerda.
4 - Clique no item 'Serviços de Informações da Internet' e abra o + à esquerda e veja
os itens que você precisará para trabalhar.
4.1 - Clicando no item 'Serviços de Informações da Internet' um conjunto de itens é selecionado por default. Alguns são fundamentais (não podem ser retirados porque são necessário ao servidor IIS) e outros opcionais que depende do uso que o usuário fará do site.
Em 'Ferramentas de Gerenciamento da Web' você com certeza precisará do ' Console de Gerenciamento do IIS'. É com ele que você configurará o IIS para rodar na sua máquina. Portanto é um item fundamental, não remover a não ser que seja um servidor de produção.
Em 'Serviços da Word Wide Web' você informa o que quer que o servidor IIS fará.
Clique em 'Recursos de Desenvolvimento de aplicativos' e selecione com o que você quer
trabalhar. Temos:
4.1.1 - ASP - O Servidor IIS será um servidor ASP Clássico.
4.1.2 - ASP NET X - Clique na versão do ASP NET que desejará trabalhar. A versão 4 no momento
é a default mas você pode pedir para incluir as versões 3.5 ou 4.8 do ASP NET.
Clique no botão OK e conclua a instalação do IIS na sua máquina.
Com certeza o serviço 'Servidor World Wide Web' é pesado e se sua máquina é razoável algumas
vezes que você não estiver usando o IIS vai querer parar o serviço para deixar a máquina mais leve
e vai querer reiniciar o serviço IIS quando precisar dele.
Você pode parar e iniciar o servidor web quando quiser. Uma das maneiras de fazer isso é
pela janela serviços do windows. Ao parar um serviço ele fica parado até que você inicie
e uma vez iniciado mesmo que você reinicie o windows ele será reiniciado também.
1-Vá em 'Painel de Controle'
2-Selecione 'Ferramentas Administrativas'
3-Selecione 'Serviços'
4-Verifique se serviço 'Serviço de Publicação da World Wide Web' (ele é o IIS) está 'em
execução'.
Se NÃO estiver em execução e você precisa do serviço, clique com o botão direito do mouse nele e
selecione o item 'iniciar'
Se o serviço estiver em execução e você não precisa dele, clique com o botão direito do mouse nele e
selecione o item 'parar'
Abra o browser e na url digite 'localhost' e em seguida a tecla 'Enter'. A tela abaixo deverá ser exibida.
Se antes não havia o serviço IIS e você instalou ele agora este erro não deveria acontecer. Provavelmente você tem algum erro no seu sistema como um windows desatualizado ou um disco problemático por exemplo.
Verificação 1 : Erros de disco. Cada vez é mais raro ocorrerem erros de disco porque a própria tecnologia embarcada nos discos de hoje é capaz de detectar e isolar defeitos realocando a informação que seria gravada num 'setor defeituoso' e gravando a informação em outra área do disco. Contudo, não é impossível porque o windows não verifica a integridade do disco ao ser ligado (isso demoraria), apenas lê e grava partindo do pressuposto que está tudo em ordem ou que as informações do disco estão confiáveis. A própria tecnologia SATA dos discos atuais conta com este recurso de inteligência da tecnologia embarcada e usa o método 'write ahead', ou seja, o windows envia a informação pro disco e vai embora não esperando que a informação seja gravada, isso fica a cargo do disco. Isso é um problema sério em discos de servidores com SQL Server e o arquivo de Log quando cai a energia, por exemplo.
1 - Vá no gerenciador de arquivos ( File Explorer )
2 - Navegue até o disco que deseja verificar e clique com o botão direito do mouse
nele.
3 - Selecione 'Propriedades'
4 - Selecione em cima da janela a aba 'Ferramentas'
5 - Na parte da janela chamada 'Verificação de erros' clique no botão 'Verificar'
Evite trabalhar com a máquina enquanto a verificação é feita e, se precisar usar a máquina, evite tarefas que utilizem muito o disco. Num SSD de 240 GB esta operação demora uns 5 minutos mas num HD convencional de 1TB pode demorar horas ( depende da fragmentação e do tamanho do disco) mas é fundamental que o disco esteje integro senão sua máquina vai mais atrapalhar que ajudar você.
Você deverá receber a mensagem 'Nenhum erro foi encontrado'. Caso contrário
o sistema tentou corrigir o erro mas não significa que conseguiu. Repita a verificação de disco até obter a mensagem 'Nenhum
erro foi encontrado' ou pode trocar seu disco porque possui um erro incorrigível.
Verificação 2 : Tenha certeza que não existe outro serviço 'World Wide Web' rodando na sua máquina.
Por exemplo, na minha máquina eu tenho o XAMP que ativa/desativa o Apache Server que é um servidor web. Ou eu inicio o serviço web do XAMP ou do Windows. É possível rodar os dois ao mesmo tempo usando recursos mas somente se foram configurados para operarem em portas diferentes mas ambos os serviços exigem muito da máquina e não é recomendável rodar os 2 serviços na mesma máquina.
Verificação 3 : Verifique se o 'Serviço de publicação da World Wide Web' está rodando na sua máquina.
Vá até o 'Painel de Controle', 'Ferramentas Administrativas' clique em 'Serviços' e procure o serviço. Se estiver com o 'Status' parado ou manual clique com o botão direito do mouse dele e selecione 'Iniciar'. Se iniciou normalmente volte ao browser e refaça o teste com a url localhost.
Verificação 4 : Seu windows e anti-vírus estão atualizados ?
Conheço muitos fãs do windows 7 e sinto muito informar mas o mundo girou depois disso. Muitas funcionalidades só estão disponíveis em versões do sistema operacional mais novas e muitas vezes alguns recursos da web ( como segurança ) foram aprimorados e os sitemas antigos sequer são compatíveis com esses novos recursos. Hoje é mais fácil rodar um asp net core num linux que num windows 7.
Verificação 5 : Configuração errada.
Por default seu IIS deveria rodar apps asp net 4.0 sem problemas. Mas se você andou configurando alguns itens eles poderão estar em desacordo com a sua aplicação. Abaixo menciono como configurar alguns itens do IIS local supondo que, se algum erro esteja ocorrendo, o erro seja alguma configuração. Alguns itens de configuração do IIS são dificeis de configurar e, apesar de disponíveis, muitas vezes precisamos ser especialistas em IIS para saber o que o parâmetro significa e como ele é utilizado.
Se você fez tudo isso acima e não resolveu o problema o mais provável é que haja uma falha que esteja atrapalhando a instalação do IIS. Alguma coisa está impedindo o IIS de funcionar. Sugiro que você remova e reinstale o IIS verificando cuidadosamente alguma mensagem de erro que possa lhe dar uma pista sobre algum problema ocorrido na instalação.
Note que não é o IIS Express instalado pelo Visual Studio. Esse você não deve mexer.
Vá em Painel de Controle, Ferramentas Admistrativas, selecione ' Gerenciador de Serviços de Serviços de Informações da Internet (IIS)'. É com esta ferramenta que você configura tudo no IIS . Veja a tela inicial :
Eu aconselho fazer um atalho para este item caso você vá querer iniciar e parar o serviço IIS com frequencia. Quando estiver em ferramentas administrativas clique com o botão direito do mouse em 'Gerenciador de Serviços de Informação da Internet' e selecione 'Enviar para' e a seguir clique em 'Área de trabalho(Criar atalho)'.
Note que ao clicar num item os itens que estão sendo exibidos são adequados a esse item. Por exemplo, ao clicar em 'Computador' na janela à esquerda os elementos da janela central e os da janela à direita são atualizado de acordo com o leque de opções do item selecionado. O mesmo vale para o painel central em relação à janela da direita.
Podemos ver que ele é composto de diversos itens :
Neste item podemos configurar os itens mais 'globais' ou hierarquicamente superiores do IIS local.
1-'Computador' : este item deverá ter o nome do seu computador na rede.
Clicando nele podemos :
1.1-Gerenciar o serviço IIS no servidor (Reiniciar, Parar ou Iniciar).
1.2-Exibir o pool de aplicativos.
1.3-Exibir os sites do servidor IIS.
1.4-Alterar a versão do .NET Framework : Na instalação do IIS o framework do servidor é o 2.0 e
para alterar para o 4.0 é aqui que isso é feito. Este item é fundamental, não se esqueça dele.
1.5-Obter novos componentes 'Web Platform'. Como a própria Microsoft fala : 'O Microsoft Web Platform
Installer - WebPI fornece um fluxo de trabalho de instalação simplificado para a instalação de
aplicativos da web de código aberto comuns e tecnologias de plataforma da web'.
Logo abaixo em Itens do 'Gerenciador de Serviços de Informações da Internet' descrevo cada um dos itens desse painel central. Alguns é bom que você conheça e alguns você precisará fazer uma boa pesquisa porque são complexos para uma pessoa leiga mexer.
É o painel principal de configuração do IIS e, caso queira :
1-Configurar as ações do item, basta clicar no item com o mouse que irá abrir um leque de opções referentes ao item selecionado no painel à direita. Muitos tem as mesmas ações mas nem todos.
2-Configurar um item, basta clicar no item com o botão direito do mouse e selecionar 'Abrir Recurso'. Tudo que pode ser configurado no item estará disponível para configuração.
Este painel conterá um atalho para as ações que podemos realizar com o item.
1-Abrir recurso : é o mesmo que 'configurar o item' descrito acima.
Neste item você poderá ver as propriedades e componentes do item e poderá adicionar, remover ou
configurar o item.
Logo abaixo em 'Itens do Gerenciador de Serviços de Informações da Internet' iremos clicar em cada item e mostrar as ações que podem ser feitas com o item.
2-Editar Permissões : Ao clicar neste item será aberto o item 'propriedades' do
'gerenciador de arquivos' ( file explorer ) para que você possa alterar permissões de acesso nos
recursos do IIS. Por default o único recurso que o IIS precisa para funcionar num site público
é a permissão 'Ler e Executar', 'Listar conteúdo da Pasta' e 'Leitura' para o usuário IIS_IUSRS.
O único lugar que a gente costuma mexer nesta configuração é na pasta que será feita o file upload
onde o usuário IIS precisará da permissão de escrita. Recomendo só alterar na pasta de file upload
e mesmo assim é um risco porque podemos passar um vírus dentro de um arquivo texto.
Clicando no item 'Default web site' temos acesso a alguns itens extras :
3-Associações : Neste item podemos verificar a que item do IIS o componente está associado.
Grande parte dos itens estão associados ao serviço IIS diretamente e, por esse motivo temos na associação
os parâmetros : Tipo:http, Nome do Host : em branco, Porta : 80, Endereço ip: *, Informações de
Associação : em branco que é exatamente o Serviço IIS escutando na porta 80.
Se quiser mudar a porta do seu IIS é aqui que deve fazê-lo.
Podemos editar, adicionar ou remover associações mas isto só deve ser feito com bom conhecimento
das tarefas do IIS.
4-Configurações básicas : Este item é muito importante e dei um destaque especial para ele no item logo abaixo.
5-No painel direito no item 'Gerenciar site' temos acesso a configuração avançada do IIS. Este item é especial e também descrevo ele em detalhe logo abaixo.
Este é o item básico de funcionamento do IIS local.
Na janela à esquerda expanda os nós até aparecer 'Default web site'.
Clique em 'Default web site'.
No painel à direita Selecione 'Configurações básicas'.
Neste item você configura :
Nome do Web Site : Vem por default como 'Default Web Site' mas você pode mudar para o nome
do seu web site.
Pool de aplicativos : O Default é 'DefaultAppPool' e clicando no botão 'Selecionar'
você poderá ver qual é o framework do seu IIS. Atualmente é o 4.0. (mar / 2021).
Pasta default ou Caminho físico : É a pasta default do sistema que é C:\inetpub. Note
que os arquivos do site ficarão na pasta C:\inetpub\wwwroot.
Autenticação do site - Autenticação pass-trought : É como o usuário será autorizado/autenticado. Clicando no botão 'Conectar Como' você define que é um ou um grupo de usuários definidos ou pode selecionar 'Usuário de aplicativo (autenticação de passagem)' que permite o acesso a todos os usuários de visualizar seu site que é o default do IIS.
Importante : Clicar no botão 'Testar Conexões'. Vai abrir uma caixa e a primeira,
'Autenticação - Autenticação pass-through (DefaultApplicationPool:ApplicationPoolIdentity)'
deverá vir obrigatóriamente com um 'V' verde indicando sucesso.
Quanto ao segundo teste, 'Autorização - Não é possível verificar o acesso ao caminho
(C:\inetpub\wwwroot)' deve vir com uma exclamação em Amarelo indicando que não foi sucesso
mas não é um erro, é um aviso por isso o amarelo. Pode deixar assim por enquanto que funciona e
mais tarde veremos mais detalhes desta configuração.
Na janela à esquerda expanda os nós até aparecer 'Default web site'.
Clique em 'Default web site'.
No painel à direita Selecione 'Configurações Avançadas'.
No item Associações definimos que ao abrir o IIS irá publicar utilizando o protocolo http na porta 80.
Você pode mudar essa porta desde que informe ao browser o número da porta tipo localhost:77.
O Caminho físico é onde os arquivos do IIS estão. O Default é '%SystemDrive%\inetpub\wwwroot' o que significa 'c:\inetpub\wwwroot' se o disco do seu sistema operacional é o C.
Outro item importante é o 'Pool de Aplicativos'. Neste item definimos a versão do framework do iis local.
DefaultAppPoll (este é o default - roda asp net 4.0 e html)
.NET v2.0
.NET v2.0(classic)
.NET v4.5
.NET v4.5 (classic)
Classic .NET AppPool
Um item importante se você tem autenticação de usuários no site é o ' Tipo de Logon de Credenciais de Caminho Físico'. O Default é 'ClearText' que funciona bem para uma Intranet mas temos as opções Interactive, Batch e Network como opções para melhorar a segurança na Internet.
Estes são os itens presentes no painel central do gerenciador do IIS.
Neste item você irá configurar como o ASP NET deve operar no servidor
Nota: No painel direito do gerenciador temos muitas vezes atalhos para itens relacionados com o item com o qual estamos trabalhando. Por exemplo, selecionando o Item 14 : Regras de autorização do .NET no painel à direita temos em 'itens relacionados' 'Usuários' e 'Funções'. São atalhos a outras funcionalidades do gerenciador que estão relacionados com o item atual.
Neste item você configura os strings de conexão com aplicações externas ao Serviço ASP NET como o ADO do MySQL, do SQL Connector do SQL Express,etc. Embora esta opção exista normalmente definimos as conexões na aplicação porque podemos ter num projeto diversas apps e cada uma delas utilizando um banco de dados diferente.
À direita da janela temos a funcionalidade 'Adicionar'. Ao clicar nela podemos:
1-Definir um nome para a conexão.
2-Definir que a conexão será com o SQL Server:
2.1-Definir o servidor.
2.2-Definir o banco de dados.
2.3-Nas credenciais podemos usar a 'segurança integrada do windows' ou definir com que usuário e senha
faremos a conexão no servidor sql.
3-Definir que a conexão NÃO será com o SQL Server:
Basta clicar no botão personalizar e colar o string de conexão com a base de dados
MySQL por exemplo.
Define o modo de validação de chave para os sites SSL. O default é:
Método de Validação : SHA1 (Default)
Disponíveis : AES, MD5, SHA1, TripleDes, HMACSHA256, HMACSHA384 e HMACSHA512.
Método de Criptografia : Automático (Default).
Disponíveis : Automático, AES,TripleDES, DES.
Chave de Validação:
Gerar automaticamente no tempo de execução : clicado.
Na caixa abaixo : AutoGenerate,IsolateApps
Chave de Decodificação:
Chave de Decodificação : Gerar automaticamente no tempo de execução : clicado.
Na caixa abaixo : AutoGenerate,IsolateApps
Note bem que temos aqui 2 criptografias SSL distintas : a 'Chave de Validação' e a 'Chave de decodificação'. Acredito que são ambas pertencentes ao método chave pública-chave privada de criptografia de informações.
Se o item 'Gerar automaticamente no tempo de execução' estiver clicado (com o V) a caixa logo abaixo ficará com o valor 'AutoGenerate,IsolateApps'.
Contudo à direita temos no painel uma funcionalidade 'Gerar Chaves'. Ao clicar nela ambos os itens 'Gerar automaticamente no tempo de execução' serão des-selecionados (sem o V) e nas caixas logo abaixo do item 'Gerar automaticamente no tempo de execução' terão seus valores trocados pelos das chaves de criptografias geradas.
Neste item você faz o casamento entre os parâmetros utilizados para criar a aplicação ASP NET e o framework que irá recompilar o projeto no lado do servidor.
Por exemplo a chave 'depurar' informa que você deseja rodar a app asp net no servidor no modo
de depuração, ou seja, se der um erro o erro será exibido como se fosse para o programador do
site e não como no default do asp net onde o depurar vem com false e as mensagens
de erro são exibidas de maneira amigável para pessoas leigas.
Coloque o item depurar em true se o IIS for de desenvolvimento ou depuração e false se for
o servidor de produção.
Se você definir clicar no item 'Visual Basic Net' verá que temos a opção 'Opção de compilação explicita' True e 'Opção de Compilação Rigorosa' False que é o padrão de funcionamento do Visual Basic.
Uma aba muito importante e que sempre é exibida escondida é a aba 'Assemblies'. Clique no sinal de maior à esquerda dele e veja todos os assemblies ou namespaces já definidos no servidor.
Esse ítem vem por default em branco mas podemos clicar em 'Adicionar' no painel à direita da tela e podemos definir o nome de um item e seu valor para que seja utilizado no programa.
Este item armazena os parâmetros oficiais para a aplicação, as constantes que todas as aplicações do servidor irão 'enxergar'.
Como o serviço SMTP é externo ao Servidor ASP NET você vai poder configurar o default para este recurso neste item.
Quando um email for enviado ou quando formos buscar os emails de uma 'entidade' precisamos definir o endereço de email que será utilizado. Note que este nome será validado e só será executado o serviço SMTP se esse usuário/endereço de email tiver permissões e relações de confiança para fazer isso.
O serviço de emails é feito pelo protocolo SMTP (Simple Mail Transfer Protocol) que por sua vez pertence ao sistema operacional. Portanto o ASP NET fará uma chamada ao sistema operacional para o envio ou recepção de email.
Como tudo que é fora do ASP NET normalmente precisamos instalar mas no caso do email ele é tão comum que já veio instalado, pelo menos neste serviço não nos precisaremos preocupar com a instalação.
Neste item você configura o servidor SMTP, se é host local, porta tcp ip do sevidor, a Configuração de autenticação que pode ser 'Não é necessário' ( firmado por uma relação de confiança ( trust level nos servidores )), Windows ou Usuário e senha. Ainda podemos definir a pasta onde os emails baixados serão armazenados.
Neste item podemos definir as 'Configurações do Modo de Estado de Seção' cujo default é 'Em processo' mas podemos selecionar o SQL Server e o seu string de conexão.
Podemos definir se vamos usar cookies no campo 'Configurações de Cookies' cujo nome default é 'ASP.NET_SessionId' e o tempo limite de 20 minutos de vida do cookie.
Neste item você irá cadastrar os usuários e grupos com permissões de segurança ligeiramente diferentes das cadastradas no windows ou active directory.
Neste item cadastraremos os conjuntos de caracteres a serem utilizados na aplicação ASP NET.
Por exemplo, os nomes de arquivos do windows usam o códifo 'Windows-1252' enquanto toda a web
usa utf-8.
Mas o item mais importante desta configuração é o item 'Habilitar Cultura Baseada no Cliente' se o seu site atende clientes internacionalmente. Sendo assim ao exibir uma quantia de dinheiro ou uma data estes itens serão personalizados de acordo com a cultura do browser do cliente. Até mesmo o idioma do site pode ser configurável.
O nível de confiança pode ser :
9.1-Full (internal) : Só numa intranet ou em casa você utiliza este nível de confiança.
9.2-High(web_hightrust.config) : No arquivo web_hightrust.config estão os usuários autorizados
a acessar o site. Sendo assim um usuário não autenticado não acessaria o site.
9.3-Medium(web_mediumtrust.config) : Este é o default dos servidores web da Intranet. Podemos ter
usuários autenticados e não autenticados utilizando o site.
9.4-Low(web_lowtrust.config) e Minimal(web_minimaltrust.config) : É um nível de segurança bem mais
relaxado que o Medium que tem a vantagem de dar mais liberdade para o usuário fazerem mais coisas com
o site. Lógicamente estes níveis só se aplicam a intranets e sites locais e com uma segurança reforçada
a nivel de aplicação.
Para definir o Nível de confiança do ser servidor IIS abra o gerenciados o
'Gerenciados de Serviços de Informações a Internet(IIS)', abra até o seu site, na região do ASP.NET
Clique com o botão do mouse no item 'Níveis de Confiança', selecione o item 'Abrir Recurso'.
O default é 'Full(Internal)' que é o mais simples de usar para IIS locais em intranets ou em máquinas
locais mas na web o nível correto é 'Medium'.
FULL : Por padrão, os aplicativos e serviços da Web ASP.NET são executados com total confiança e os aplicativos podem realizar operações privilegiadas e acessar recursos sujeitos apenas à segurança do sistema operacional e Listas de controle de acesso (ACLs) do Windows. Você pode usar a segurança de acesso por código (CAS) para restringir o acesso a determinados recursos usando o elemento de confiança do web.config.
MEDIUM : Restringe o acesso a OldDbPermission, EventLogPermission, ReflectionPermission, RegistryPermission . Também há restrições no WebPermission onde você só pode comunicar-se com os endereços definidos no elemento de confiança e FileIOPermission onde você só poderá acessar arquivos em sua hierarquia de diretório virtual de aplicativos. Considere o atributo originUrl para o elemento trust, que permite limitar o que URLs do seu aplicativo da web pode acessar. Você pode personalizar as restrições de confiança média (por exemplo, modificar FileIOPermission para permitir o acesso a um determinado diretório fora da hierarquia de diretório virtual de aplicativos), criando um arquivo de política personalizado e nível de política.
No nível médio de confiança o acesso aos seguintes itens são garantidos :
FileIOPermission - todos os componentes, para licenciamento e acesso a arquivos.
ReflectionPermission - todos os componentes, para licenciamento
SocketPermission - todos os componentes que usam comunicação de soquete
DnsPermission - sempre que um nome de host é usado em vez de um endereço IP apontado
LOW : Este nível de segurança é muito restrito e apenas o acesso aos componentes do ASP NET estão garantidos os demais (externos ao ASP NET) precisarão de solicitação através do System.Security para serem acessados.
Este item é muito importante para os sites de produção porque podemos personalizar as telas com mensagens de erro de maneira que fiquem 'amigáveis' com os usuários leigos e ao mesmo tempo que agreguem instruções de como contornar o problema ocorrido. Uma coisa boa sempre que ocorre um erro é que o usuário não perca o trabalho que teve até aquele ponto.
As páginas de erro podem ser do tipo 4xx ou 5xx. A 4xx é um erro de navegação ou na carga da página solicitada enquanto o erro 5xx são erros do lado do servidor que são uma vergonha para qualquer programador de empresa grande, nunca devem ocorrer.
Vimos no Item 3 : Compilação do .NET os Assemblies ou NameSpaces que o servidor tem instalado.
Neste item você poderá registrar mais componentes no servidor.
Essa janela configura como o Servidor Web ASP NET deve trabalhar. Por exemplo o item 'Modo de
compilação' indica como o compilador/interpretador deverá ser ativado. Poderá ser Automático
(Auto) onde o compilador/interpretador será chamado se necessário. Note que se seu site é feito
totalmente em ASP NET você deve configurar para Sempre(Always) porque sempre será necessário e
não quer que o servidor perca tempo verificando se precisa ou não porque, em ASP NET, sempre
será necesário.
Outra opção é Sempre(Always) que é a melhor opção quando o seu projeto só tem páginas ASP NET e
seu servidor NÃO é de alta utilização pois isto toma tempo dele.
Outra opção é Nunca(Never) se você não está trabalhando com o ASP NET como o ASP Clássico ou páginas
web html simples.
Existem alguns parâmetros que podem ser modificados em ocasiões muito especiais como 'Tipo Base de Controles de Usuário' cujo default é 'System.Web.UI.UserControl' e o parâmetro 'Tipo Base de Páginas' cujo default é 'System.Web.UI.Page'. Este é o padrão ASP NET mas você pode expandir essas bibliotecas adequando a necessidades do seu site e aí as bibliotecas serão outras, as suas.
As configurações de 'Interface de usuários' raramente colocamos na configuração do servidor e sim no próprio aplicativo. Por exemplo, O parâmetro 'Arquivo de Página Mestra' a gente coloca na master page da app mas neste item você pode registrar a master page e aí ela valerá para todas as apps do servidor web.
Na aba 'Geral' é que tem o item mais importante, as Namespaces do sistema que nossa app pode utilizar.
Por default já vem :
System,System.Collections, System.Collections.Generic, System.Collections.Specialized,
System.ComponentModel.DataAnnotations, System.Configuration, System.Linq, System.Text,
System.Text.RegularExpressions, System.Web, System.Web.Caching, System.Web.DynamicData, System.Web.SessionState,
System.Web.Security, System.Web.Profile, System.Web.UI, System.Web.UI.WebControls,
System.Web.UI.WebControls.WebParts, System.Web.UI.HtmlControls, System.Xml.Linq.
Note que a app chamará esses controles com as credenciais do usuário vigente. Se for um usuário NÃO autenticado
muitas dessas funcionalidades estaram fora de seu alcance.
Neste item podemos registrar novos controles. Na janela da direita temos a funcionalidade 'Registrar Controles'
Este item normalmente fica em branco mas nele você poderá :
12.1-Adicionar novas propriedades : Neste item você poderá registrar informações que o site utilizará nos formatos 'Cadeia de Caracteres', 'XML', binário ou 'Provedor específico'. Todo o dado aqui registrado terá um nome, um tipo de dados, um valor padrão, se só pode ser lido ou lido e escrito, se estará ou não disponível para usuários anonimos (não autenticados).
12.2-Adicionar grupo : Neste item você poderá um 'Grupo' de informações dando um nome a esse grupo.
12.3-Definir provedor padrão : Neste item você poderá registrar os provedores padrão para o site como AspNetSqlProfileProvider, MySQLProvileProvider ou outro provider que estiver devidamente registrado no sitema.
Neste item você terá acesso aos itens externos que poderão ser acessados pelo Servidor web. Esses
'componentes' fazem serviços básicos como acesso a dados em servidores SQL, envio de emails entre
outros.
Note que são componentes externos ao Servidor ASP NET. O Envio de emails é feito pelo sistema operacional
enquanto acesso a dados é feito por componentes instalados como ADO entre outros.
12.4-Provedores : Neste item você poderá registrar novos provedores para o site originários
dos recursos :
12.4.1 - 'Funções do .NET' : AspNetSqlRoleProfiler, AspNetWindowsTokenRoleProvider, MySQLRoleProvider.
12.4.2 - 'Usuários do .NET' : AspNetMembershipProvider e MySQLMembershipProvider.
12.4.3 - 'Perfil .NET' : AspNetSqlProfileProvider e MySQLProfileProvider.
Note que esses providers são registrados ao instalarmos as ferramentas de acesso a esses recursos como
SQL Client para MS SQL Server, ADO para MySQL, etc.
Por default uma regra de autorização já vem com o IIS ao ser instalado - Modo:Permitir,
Usuários: Todos os usuários, Funções, Verbos em branco, Tipo de Entrada: Herdado.
Este item define nosso site como público a todos os usuários mesmo os não autenticados.
Normalmente definimos as regras de autenticação e autorização dentro do web.config de nossa aplicação porque cada aplicação pode ter suas próprias regras mas se todas as aplicações do servidor possuem a mesma regra você poderá registrar aqui.
Imporante : As regras ou roles de acesso do ASP NET são criadas neste item, em 'Adicionar Regra de Permissão'.
Clicando no item 'Adicionar Regra de Permissão' podemos adicionar uma regra que permitirá o acesso
ao site com as seguintes características:
1-A quem se destina a regra : Todos os usuários, Todos os usuários anônimos, Funções ou grupos de
usuários especificados, a usuários específicos e se a regra deve ser aplicada em verbos específicos
(Get ou Post)
Clicando no item 'Adicionar Regra de Negaçãoo' podemos adicionar uma regra que negará acesso
ao site com as seguintes características:
1-A quem se destina a regra : Todos os usuários, Todos os usuários anônimos, Funções ou grupos de
usuários especificados, a usuários específicos e se a regra deve ser aplicada em verbos específicos
(Get ou Post)
Neste item você registrará os usuários do .NET que terão acesso aos providers do sistema, como SQL Server ou Email.
Normalmente fazemos isso dentro da aplicação mas aqui você poderá fazer a configuração que ficará valendo para todas as aplicações ASP NET do servidor.
Neste item você terá acesso a configuração de todos elementos do IIS.
A interface é bem mais amigável que no Visual Studio mas há itens que para serem configurados
precisamos de uma visão de especialista para entender como funciona e o que podemos alterar.
Este item é um item chave de configuração. Nele você tem no painel superior uma caixa de opções
chamada 'Seção' e podemos selecionar nela o item que desejamos configurar :
16.01-system.ftpServer : Configura como o serviço de ftp deve ser acessado pelo servidor.
16.02-system.net : configura alguns itens do site mas não precisa ser especialista.
16.03-system.transactions : Define infos de transações como time-out.
16.04-system.web: Este item configura um monte de itens mas precisa ser especialista para mexer com ele.
16.05-system.webServer : Este item configura um monte de itens mas precisa ser especialista para mexer com ele.
16.06-system.xml.serialization : Define como o xml deve ser tratado pelo site.
16.07-appsettings : vem vazio mas configura o app.config do site.
16.08-configProtectedData : Configura qual criptografia default em sites SSL (RsaProtectedConfigurationProvider).
16.09-connectionStrings : Strings de conexão com bases de dados SQL.
16.10-system.codedom : Configura as linguagens suportadas e o registro de seus respectivos
frameworks - C# e VB Net.
16.11-system.data : Configuração dos elementos de acesso a dados.
16.12-system.diagnostics : Define quais informações serão enviados ao cliente em caso de erro.
16.13-system.windows.forms: jitDebugging=False.
Neste item você poderá configurar os arquivos web.config de todos os 'Pools de Aplicação' do servidor.
Abra o item e clique no painel à direita em 'Pesquisar Configuração'. Clique num web.config qualquer e veja seus itens separados e classificados decentemente como nenhuma ferramenta do Visual Studio faz.
Finalmente entramos na configuração do servidor IIS em sí.
Neste item temos itens de configurações importantes ao funcionamento do asp no servidor.
O primeiro é o campo 'Linguagem de Script' que vem com o o default VBScript. A vantagem de utilizar o VBScript Server Side é que você tem acesso aos componentes externos ao ASP e instalados no serividor como o CDONTS para enviar email, o Persists para fazer file Upload, o ADO para acessar bancos de dados. Mas nada impede que você utilize JavaScript ou outro 'processador' instalado que utilize outra linguagem.
Expanda a caixa 'Propriedades de depuração' e ai você encontrará um dos itens mais valiosos para nós programadores.
Na caixa 'Enviar erros para o navegador' vem com o valor False o que significa que qualquer erro que ocorra no servidor
exiba uma mensagem padrão :
'An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click <a href="https://go.microsoft.com/fwlink/?LinkID=82731">here</a>
to find out more about this error.'
Num site em produção este parâmetro pode ficar como False mas nos servidores de testes e homologação o valor deste parâmetro
deverá ser true. Com isto sempre será exibida a linha e a mensagem do erro ocorrido.
Nas caixas 'Habilitar depuração do lado do Cliente' e 'Habilitar depuração do servidor' vem com o valor False e, a menos que o servidor seja um site pessoal ou de uma intranet de uma empresa, aconselho a manter false. Colocando true nesses valores informações sobre o erro ocorrido serão enviadas ao browser do cliente mostrando detalhes que poderiam facilitar, e muito, o hackeamento dos processos do servidor.
Na caixa 'Mensagem de erro de script' vem por default a mensagem descrita acima. Modifique para algo amigável, em português do tipo : Ocorreu um erro de processamento no servidor. Por favor informe aos administradores do sistema.
Na aba 'Propriedades e Limites' temos a definição de quanto tempo o servidor deverá aguardar, no máximo, para a execução de um script. O default é 1 minuto e 30 segundos.
Cuidado : 00:00:00 significa tempo infinito e dependendo onde for definido poderá fazer o servidor para de responder pois não terá fim a espera da realização da tarefa.
Na aba 'Propriedades da Seção' temos parâmetros muito importantes. O primeiro é o que habilita o uso da seção no servidor asp ('Habilitar Estado de Seção = True'). O outro é o tempo limite que os dados da seção deverão ficar no servidor (Tempo limite = 00:20:00). O default é 20 minutos mas podemos aumentar se o servidor tiver baixa utilização ou diminuir se o servidor tiver muitos usuários.
Neste item você definirá quais os tipos de autenticação que serão aceitas pelo site.
Por default temos :
18.1-'Autenticação Anônima' : Habilitada
18.2-'Autenticação por formulários' : Desabilitada.
18.3-'Personificação do ASP.NET' : Desabilitada.
Note que se o tipo de autenticação estiver desabilitada ela não poderá ser utilizada para operar no site. Por exemplo, se você tem o tipo de autenticação por formulários deverá habilitar o item 'Autenticação por formulários'.
Clicando no item 'Autenticação' com o botão direito do mouse e selecionando o item 'Abrir Recurso' podemos alterar o método de autenticação do site.
Inicialmente a 'Autenticação anônima' é habilitada. Com isto o site fica disponível para todos os usuários, autenticados ou não.
Clicando em 'Autenticação por formulários' e clicando no painel à direita da página no item 'Editar' podemos ativar a autenticação por formulários. Para ativar esta opção temos que definir a página de login do usuário na caixa 'URL de Logon'. Na caixa 'Tempo limite...' vem o default de 30 minutos para o usuário fazer o logon. Acho que 5 minutos está bom. Você ainda pode configurar a utilização cookies para salvar as informações do usuário. Podemos selecionar : 'Não usar cookies', 'Usar cookies', 'Detecção automática' ou 'Usar perfil do dispositivo'. Eu pessoalmente nunca habilito cookies em minha máquina e detesto que sites joguem seu lixo no meu computador. Só devemos utilizar cookies quando absolutamente necessários e que não sejam estratégicos para o funcionamento da nossa página.
Continuando com a autenticação por formulários devemos definir o nome do arquivo de cookies desejado. O default é '.ASPXAUTH'. Precisamos definir o modo de proteção do cookie. Pode ser 'Criptografia e validação', o default, 'nenhum' (sem criptografia ou validação - não recomendo), Criptografia, Validação. Criptografia eu acho fundamental pois não queremos que outros acessem os dados do nosso 'cookie' e validação é um bom recurso pois exige que o usuário esteja validado ou autenticado para acessar o cookie. Contudo não existe uma ferramenta que 'feche' o cookie para uma única aplicação ou a um único usuário, uma vez lá ele pode ser lido por qualquer usuário autenticado na aplicação. Podemos definir ainda se para a transferência do cookie é exigido SSL ou se devemos 'Extender a expiração do cookie em cada solicitação' que permite revalidar o cookie e extender a validade de suas informações.
Habilitando o item 'Autenticação por formulários' não implica que a autenticação anônima foi desativada. Temos os dois tipos de autenticação correndo no servidor e pela aplicação podemos segregar o usuário autenticado do não autenticado através de perfis ou permissões dentro do código da pagina ASP.
Ainda em autenticação temos o terceiro item chamado 'Personificação ASP NET' onde podemos escolher 'Usuário específico' ou 'Usuário Autenticado'. Quanto ao usuário autenticado referimos a todos os usuários autenticados enquanto 'Usuário específico' devemos dizer qual o usuário tem acesso ao recurso e lembre-se que tem que ser um usuário existente tanto no windows como na pasta root do IIS.
A autenticação tipo Passaport é feita totalmente dentro da aplicação e não no servidor IIS. O trabalho da aplicação é receber a autenticação de retorno do site da Microsoft e atribuir um perfil que determinará o acesso aos recursos da aplicação. Note que este 'acesso' é implementado na aplicação. Por exemplo, ao abrir uma página x será verificado se o usuário faz parte do perfil 'secretárias'. Se não fizer não pode ver a página e ele será redirecionado automaticamente para a página de login ou um outro desvio autorizado.
None : Indica que não há nenhuma forma de autenticação do usuário, tudo no site é público
Windows: O ASP .NET usa o IIS (Internet Information Service) para autenticar os usuários e senhas. O IIS trabalha de três formas: Básico, Digest e Integrado com o Windows, e em cada um destes a opção de usuário anônimo deverá ser desabilitado.
Passport : Este tipo de autenticação é realizada pelos servidores da Microsoft contudo é necessário ao processo local a definição das permissões do usuário.
Forms : É forma mais comum e permite que o programador defina seu próprio código de autenticação agregando ao perfil do usuário suas permissões de acesso.
Importante : Note bem que até este nível não temos regras de acesso aos componentes e serviços do IIS. Por exemplo, no servidor temos o serviço de envio de emails(SMTP) mas onde está definido que aplicação pode ou não acessar essa funcionalidade ? Só porque está no servidor não significa que todos podem ou devem acessar. Foi para isso que foi criada a namespace Security.
Define o que deve ser enviado ao cliente quando ele solicitar o engine do servidor. Por default vem os valores Nome : X-Powered-By, Valor=ASP.NET, Tipo de Entrada=Herdado
O cache de saída é a montagem da página no servidor antes de ser enviada ao cliente.
Podemos 'Habilitar o cache' ou 'Habilitar o cache de Kernel' para bufferizar o conteúdo da página evitando que uma página de alta utilização seja renderizada com frequencia. Podemos definir o tamanho máximo do cache (em byte) bem como o limite para o tamanho do cache. Numa página de alta utilização com pouca atualização esta opção é uma boa escolha.
Compactando as informações das respostas do servidor reduzimos as informações trafegadas
na rede e ganhamos na largura banda de rede.
Básicamente o que um mp3 faz numa música...compacta a música mas isso exige um processo de descompactação
no cliente.
Por default vem 'Habilitar compactação estática de conteúdo'
Esta configuração permite definir se o seu site usa o SSL ou não para comunicar com o Cliente.
Note que se você trafega informações sensíveis no seu site o SSL é imprescindível.
Um certificado SSL server side normalmente é um recurso pago e podemos ter 2 tipos de certificados : o compartilhado e o exclusivo. Cada um deles dá direito ao leque de recursos de autenticação sendo que para as autenticações mais criteriosas ( como receita federal, governo ) temos que usar o SSL exclusivo mas num site podemos usar o SSL compartilhado.
Note que para usar o SSL você precisa ter acesso ao serviço SSL prestado por alguma entidade de autenticação tipo CertSign entre outras.
Podemos definir se o site precisa ou não do SSL (Exigir SSL) e se devemos Ignorar, Aceitar ou Exigir os certificados do cliente.
Caso o usuário omita o nome da página o site irá nesta lista buscar uma página dentro da pasta que esteja dentro da lista. Se não encontrar vai depender das permissões do usuário. Se ele tiver permissão de listar os arquivos da pasta (browsing directory - no IIS não tem não) será aberto uma listagem com todos os nomes de arquivos dentro da pasta. Se não tiver permissão de listar arquivos da pasta será exibida o erro 'forbiden' porque ele não pode listar os arquivos da pasta.
Os documentos padrão do site são : Default.htm, Default.asp, index.htm, index.html, iisstart.htm e default.aspx.
Este item permite definir quais os tipos de arquivos podem ser trocados na solicitação da página.
Por default já vem algumas extensões e todas elas vem negadas.
Por exemplo, .vbproj vem com a permissão Permitido = false porque não é um documento a ser
enviado do cliente para o server.
Você pode definir quais os tipos de arquivos o site pode ou não aceitar. Por exemplo, se você incluir pdf nesta lista o site não aceitará, por exemplo, fazer upload de arquivos pdf. Contudo ele deixará você enviar e abrir o documento pdf para um usuário porque o sentido é o contrario - ele não aceita do cliente para o server mas aceita do server para o cliente.
Note que um simples arquivo texto pode ter em seu conteúdo um vírus. O tipo não é garantia que realmente em seu conteúdo virá dados com o tipo especificado. Podemos facilmente renomear um arquivo exe em txt ou mesmo adicionar um arquivo txt a um exe e enviar a um servidor. Cuidado.
Os filtros ISAPI são o registro dos frameworks instalados no servidor, mais especificamente, das dlls do framework ( aspnet.filter ). Por default vem instalado no IIS os frameworks 2.0 e o 4.0 tanto na versão 32 bits como na 64 bits.
Este item é importante porque sabemos que enviando uma app com framework 2 ou 4 para nosso servidor ele irá funcionar, não importando se é 32 ou 64 bits.
Podemos pedir para o servidor gravar o LOG de transações num arquivo texto numa pasta.
Este recurso é muito útil na depuração de erros e para segurança mas um servidor de produção raramente terá este item ativado.
Definimos neste item:
1-Como o log deve ser registrado : Por site ou todos os sites do servidor juntos.
2-O formato do arquivo de log : Pode ser W3c (padrão), IIS, NCSA ou podemos personalizar.
3-Podemos selecionar os campos de informações que queremos no documento gerado.
4-A pasta onde o arquivo com os dados deverá ser salvo. O default é '%SystemDrive%\inetpub\logs\LogFiles'
que é o mesmo que dizer 'C:\inetpub\logs\LogFiles' se o disco de sistema é o disco C.
5-Podemos gravar só o log da transação ou podemos ainda adicionar o evento que deu o erro.
6-Podemos definir com que frequencia queremos criar um aruqivo de log. O default é 'Diariamente' mas
podemos agendar 'Por hora', 'Diariamente', 'Semanalmente' ou 'Mensalmente'.
7-Podemos definir que não queremos que novos arquivos de log sejam criados quando o atual for encerrado.
8-Podemos incluir informações de data e hora no nome do arquivo para facilitar sua identifação.
Neste item você pode visualizar, incluir ou remover os manipuladores de eventos, ou seja, as dlls que tratam os recursos do site. Desde as páginas estáticas até asp clássico ou asp net.
Neste item está o registro dos módulos do sistema, ou seja :
28.1-Em que pasta esta o recurso.
28.2-Qual dll, NameSpace, etc trata o manipulador
28.3-Qual o tipo do módulo : Nativo (dll) ou Gerenciado (NameSpace)
Define quais as páginas de erro devem ser enviadas ao usuário no caso da ocorrência de algum erro.
Por default os erros que já tem páginas automaticamente definidas na instalação do IIS são :
Erro | Mensagem | Descrição do erro ocorrido |
---|---|---|
401 | Não autorizado: acesso negado devido a credenciais inválidas. | Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas. |
401.1 | Não autorizado: Acesso negado devido a credenciais inválidas. | Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas. |
401.2 | Não autorizado: Acesso negado devido à configuração do servidor. | Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas porque seu navegador da Web está enviando um campo de cabeçalho WWW-Authenticate que o servidor Web não está configurado para aceitar. |
401.3 | Não autorizado: acesso negado devido a uma ACL definida no recurso solicitado. | Você não tem permissão para visualizar este diretório ou página devido à lista de controle de acesso (ACL) que está configurada para este recurso no servidor web. |
401.4 | Não autorizado: falha na autorização pelo filtro instalado no servidor Web. | Você pode não ter permissão para visualizar este diretório ou página usando as credenciais que você forneceu. O servidor da Web tem um filtro instalado para verificar os usuários que se conectam ao servidor e não conseguiu autenticar suas credenciais. |
401.5 | Não autorizado: falha na autorização por um aplicativo ISAPI/CGI. | A URL que você tentou acessar tem um aplicativo ISAPI ou CGI instalado que verifica as credenciais do usuário antes de continuar. Este aplicativo não pode verificar suas credenciais. |
403 | Proibido: acesso negado. | Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas. |
403.1 | Proibido: acesso de execução negado. | Você tentou executar um CGI, ISAPI ou outro programa executável de um diretório que não permite a execução de programas. |
403.2 | Proibido: acesso de leitura negado. | Há um problema com a página que você está procurando e ela não pode ser exibida. Este erro pode ocorrer se você estiver tentando exibir uma página HTML que reside em um diretório configurado para permitir apenas permissões de execução ou script. |
403.3 | Proibido: acesso de gravação negado. | Há um problema ao salvar a página no site. Este erro pode ocorrer se você tentar carregar um arquivo ou modificar um arquivo em um diretório que não permite acesso de gravação. |
403.4 | Proibido: SSL é necessário para visualizar este recurso. | A página que você está tentando acessar está protegida com Secure Sockets Layer (SSL). |
403.5 | Proibido: SSL 128 é necessário para visualizar este recurso. | O recurso que você está tentando acessar está protegido por uma versão de 128 bits do Secure Sockets Layer (SSL). Para visualizar este recurso, você precisa de um navegador que suporte esta versão de SSL. |
403.6 | Proibido: o endereço IP do cliente foi rejeitado. | O servidor da Web que você está tentando acessar possui uma lista de endereços IP que não têm permissão para acessar o site, e o endereço IP do seu computador de navegação está nesta lista. |
403.7 | Proibido: é necessário o certificado de cliente SSL. | A página que você está tentando acessar requer que seu navegador tenha um certificado de cliente SSL (Secure Sockets Layer) que o servidor da Web reconhecerá. O certificado do cliente é usado para identificá-lo como um usuário válido do recurso. |
403.8 | Proibido: o nome DNS do cliente foi rejeitado. | O servidor da Web que você está tentando acessar possui uma lista de nomes DNS que não têm permissão para acessar este site, e o nome DNS do seu computador de navegação está nesta lista. |
403.9 | Proibido: muitos clientes estão tentando se conectar ao servidor Web. | O servidor da Web está muito ocupado para processar sua solicitação neste momento. |
403.10 | Proibido: o servidor Web é configurado para negar acesso de execução. | Você tentou executar um CGI, ISAPI ou outro programa executável de um diretório que não permite a execução de programas. |
403.11 | Proibido: a senha foi alterada. | Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas. |
403.12 | Proibido: o certificado do cliente teve o acesso negado pelo mapeador de certificados do servidor. | A conta para a qual seu certificado de cliente está mapeado no servidor Web teve acesso negado a este site. Um certificado de cliente SSL (Secure Sockets Layer) é usado para identificá-lo como um usuário válido do recurso. |
403.13 | Proibido: o certificado do cliente foi revogado no servidor Web. | Seu certificado de cliente foi revogado ou o servidor de revogação não pôde ser contatado. Um certificado de cliente SSL (Secure Sockets Layer) é usado para identificá-lo como um usuário válido do recurso. |
403.14 | Proibido: listagem de diretório negada. | O servidor da Web está configurado para não exibir uma lista do conteúdo deste diretório. |
403.15 | Proibido: as licenças de acesso para cliente excederam os limites no servidor Web. | Há muitas pessoas acessando o site neste momento. O servidor Web excedeu seu limite de licença de acesso para cliente. |
403.16 | Proibido: o certificado do cliente é malformado ou não é confiável para o servidor Web. | Seu certificado de cliente não é confiável ou é inválido. Um certificado de cliente SSL (Secure Sockets Layer) é usado para identificá-lo como um usuário válido do recurso. |
403.17 | Proibido: o certificado do cliente expirou ou ainda não é válido. | Seu certificado de cliente expirou ou ainda não é válido. Um certificado de cliente SSL (Secure Sockets Layer) é usado para identificá-lo como um usuário válido do recurso. |
403.18 | Proibido: não é possível executar a URL solicitada no pool de aplicativos atual. | A solicitação especificada não pode ser executada no pool de aplicativos configurado para este recurso no servidor web. |
403.19 | Proibido: não é possível executar CGIs do cliente neste pool de aplicativos. | O usuário configurado para este pool de aplicativos não tem privilégios suficientes para executar aplicativos CGI. |
404 | Arquivo ou diretório não encontrado. | |
404.1 | Arquivo ou diretório não encontrado: o site não está acessível na porta solicitada. | O site que você está tentando acessar possui um endereço IP configurado para não aceitar solicitações que especifiquem um número de porta. |
404.2 | Arquivo ou diretório não encontrado: a política de bloqueio impede esta solicitação. | A página que você está solicitando não pode ser servida devido às extensões de serviço da Web configuradas no servidor da Web. |
404.3 | Arquivo ou diretório não encontrado: a política de mapeamento MIME impede esta solicitação. | A página que você está solicitando não pode ser servida devido à política de mapa MIME (Multipurpose Internet Mail Extensions) configurada no servidor web. A página solicitada tem uma extensão de nome de arquivo que não é reconhecida e, portanto, não é permitida. |
404.4 | Arquivo ou diretório não encontrado: nenhum manipulador de módulo está registrado para manipular a solicitação. | O recurso que você está procurando não possui um módulo ou manipulador associado a ele. Não pode ser manuseado e servido. |
404.5 | Sequência de URL negada. | A sequência de URL especificada não é aceita pelo servidor. |
404.6 | Verbo HTTP negado. | O verbo HTTP especificado não é aceito pelo servidor. |
404.7 - Extensão de arquivo negada. | A extensão de arquivo especificada do recurso não é aceita pelo servidor. | |
404.8 | Namespace da URL oculto. | O namespace do URL especificado está oculto pela configuração. |
404.9 | Atributo de arquivo oculto. | O arquivo solicitado possui um atributo oculto que o impede de ser servido. |
404.11 | URL é double-escaped. | Este URL foi negado porque é suscetível a ataques de escape duplo. |
404.12 | A URL possui caracteres de bit alto. | Este URL foi negado porque contém caracteres de bits elevados. |
404.14 | URL muito longa. | Este URL foi negado porque seu comprimento é maior do que o especificado pela configuração. |
404.15 | Cadeia de caracteres de consulta muito longa. | Este URL foi negado porque sua string de consulta é mais longa do que o especificado pela configuração. |
405 | O verbo HTTP usado para acessar esta página não é permitido. | A página que você está procurando não pode ser exibida porque um método inválido (verbo HTTP) foi usado para tentar acessar. |
406 | O navegador do cliente não aceita o tipo de MIME da página solicitada. | A página que você está procurando não pode ser aberta pelo seu navegador porque tem uma extensão de nome de arquivo que o seu navegador não aceita. |
412 | A pré-condição definida pelo cliente falhou quando foi avaliada no servidor Web. | A solicitação não foi concluída devido a condições prévias definidas no cabeçalho da solicitação. As pré-condições evitam que o método solicitado seja aplicado a um recurso diferente do pretendido. Um exemplo de pré-condição é o teste de conteúdo expirado no cache de página do cliente. |
413.1 | Tamanho de conteúdo muito grande. | Este URL foi negado porque o tamanho do conteúdo é maior do que o especificado pela configuração. |
431 | Cabeçalho de solicitação muito longo. | Um dos cabeçalhos de solicitação é maior do que o limite especificado configurado no servidor. |
500 | Erro de servidor interno. | Há um problema com o recurso que você está procurando e ele não pode ser exibido. |
500.13 | Erro de servidor: o servidor Web está muito ocupado. | A solicitação não pode ser processada neste momento. A quantidade de tráfego excede a capacidade configurada do site. |
500.14 | Erro de servidor: configuração de aplicativo inválida no servidor. | A solicitação não pode ser processada devido a erros de configuração do aplicativo no servidor web. |
500.15 | Erro de servidor: solicitações diretas para GLOBAL.ASA não são permitidas. | GLOBAL.ASA é um arquivo especial que não pode ser acessado diretamente pelo seu navegador. |
500.16 | Erro de servidor: credenciais de autorização UNC incorretas. | A página que você está solicitando não pode ser acessada devido às configurações de autorização UNC que estão configuradas incorretamente no servidor web. |
500.17 | Erro de servidor: o repositório de autorização de URL não foi encontrado. | O armazenamento de autorização de URL para a página solicitada não pode ser encontrado no servidor da Web, portanto, suas credenciais não puderam ser verificadas. |
500.18 | Erro de servidor: o repositório de autorização de URL não pode ser aberto. | O armazenamento de autorização de URL para a página solicitada não pode ser aberto no servidor Web, portanto, suas credenciais não puderam ser verificadas. |
500.19 | Erro de servidor: os dados deste arquivo estão configurados incorretamente. | A página solicitada não pode ser acessada devido a um erro de configuração. |
500-100 | É uma página asp - Erro interno do servidor: erro ASP. | Exibe o erro e aponta para os recursos para corrigir o problema |
501 | Os valores de cabeçalho especificam um método que não está implementado. | A página que você está procurando não pode ser exibida porque um valor de cabeçalho na solicitação não corresponde a certas definições de configuração no servidor web. Por exemplo, um cabeçalho de solicitação pode especificar um POST para um arquivo estático que não pode ser postado ou especificar um valor Transfer-Encoding que não pode usar compactação. |
502 | O servidor Web recebeu uma resposta inválida enquanto agia como um gateway ou servidor proxy. | Há um problema com a página que você está procurando e ela não pode ser exibida. Quando o servidor Web (enquanto agia como um gateway ou proxy) contatou o servidor de conteúdo upstream, ele recebeu uma resposta inválida do servidor de conteúdo. |
A pasta default dessas páginas é %SystemDrive%\inetpub\custerr\
Note que nenhum usuário nem um analista gostaria de ver um erro. Caso o erro ocorra faça o possível para contornar o problema. A pior coisa que tem é fazer o usuário perder um bom tempo preenchendo informações e no final receber um erro e perder tudo.
No caso do usuário ter permissão de listar os arquivos do servidor ( file browser ) quais informações ele poderá ver sobre o arquivo. Pode ser Data, hora de criação, tamanho, extensão. Eu, por exemplo, tenho arquivos pdf neste site interessantes mas no link para visualização informo que tem 50 Mega de tamanho, por exemplo, para que o usuário fique ciente que o arquivo é grande e não estoure sua franquia de internet do celular.
Exibe a lista de todos tipos de arquivo (extensões) que estão registrados no site. Aqui você poderá Adicionar, Editar ou Excluir esses tipos.
Confirmando que o IIS tem acesso a pasta do web server. Ainda no
'Gerenciador de Serviços de Informações da Internet' clique com o botão direito do mouse em 'Default web site' e selecione
'Editar Permissões'.
Na aba segurança podemos ver os usuários que tem permissão de acesso a pasta.
Verifique se o usuário 'IIS_IUSRS ( computador\IIS_IUSRS ) tem acesso de
'Leitura', 'Listar' e 'Ler e Executar' na pasta
.
É só isso que será necessário para o site funcionar...Só na pasta
de FileUpload do seu site (se tiver) você terá que dar permissão de escrita para o Usuário
IIS mas somente na pasta de File Upload.
Ainda no 'Gerenciador de Serviços de Informações da Internet' clique em 'Autenticação'. Clique com o botão direito do mouse em 'Autenticação Anônima' e selecione o item 'Abrir Recurso'.
No item 'Autenticação Anônima' devemos ter o status habilitada.
Clique em 'Autenticação Anônima' com o botão direito do mouse e selecione o item 'Editar'.
Na caixa 'Usuário Específico' selecione 'IUSR' se quiser que todos os usuários acessem
seu site.
Note que se a autenticação do seu site for por formulário você deve habilitar a 'Autenticação
por formulários' neste item.
Se você acabou de instalar o IIS e ele está funcionando com sua configuração default temos os seguintes
itens instalados na pasta c:\inetpub\wwwroot:
1-Um arquivo chamado iisstart.htm : é a página default do IIS. Note que é html e não asp net por
isso abriu sem problemas.
2-Um arquivo iisstart.png que é a imagem apresentada na página default do site.
3-Uma pasta chamada aspnet-client contendo a pasta system_web e dentro dessa pasta temos a pasta
2_0_50727 que é a pasta do framework 2.0 e a pasta 4_0_30319 que é a pasta do framework 4.0.
Contudo ambas pastas estão vazias, sem qualquer arquivo. São para uso futuro.
Abra o browser e digitando 'localhost'na url. Ele deve abrir normalmente igual ao item
'Testando o serviço IIS da sua máquina' acima nesta página.
Contudo é importante frisar que o IIS abriu somente uma página HTML.
Antecipando digo que, de saída, o nosso IIS tá rodando ASP NET numa boa.
Você pode utilizar o Visual Studio para publicar um projeto no seu servidor IIS. Aconselho a criar uma app bem simples e quando tiver certeza que funciona até aquele ponto, extenda a aplicação para fazer o teste com toda a aplicação. Por exemplo, se sua app usa o mysql é uma app complexa porque usar recursos externos ao servidor asp.
Caso tenha dúvida de como criar uma aplicação ASP NET extremamente simples Clique Aqui
No meu caso eu criei a app, está rodando perfeitamente dentro do IIS Express e pedi para compilar e publicar numa pasta de um laptop e ai vou copiar a app para o computador com o servidor IIS. O resultado foi o seguinte : Erro 1 : Erro HTTP 403.14 - Forbiden. Veja no item 'Depurando erros' logo abaixo como solucionar este erro.
Se quiser mudar o framework default do site inteiro selecione o item 'Computador' na janela à esquerda (primeiro item), no painel da direita temos o atalho 'Alterar a versão do .NET Framework' e você poderá optar pelos frameworks instalados (2.0 e 4.0).
Caso queira configurar o framework para um pool de aplicativos específico vá no
'Gerenciador de Serviços de Informações da Internet', clique em 'Default web site' ou
no pool de aplicações que deseja alterar o framework, selecione
Configurações avançadas (no painel direito da página).
Clique na linha 'pool de aplicativos' está 'Default App Pool' e mude para a versão do asp net
desejado. Pode ser:
1-DefaultAppPoll (este é o default - roda asp net 4.0 e html)
2-.NET v2.0
3-.NET v2.0(classic)
4-.NET v4.5
5-.NET v4.5 (classic)
6-Classic .NET AppPool
Quando a gente publica o site na web temos que ter a certeza que o servidor web roda nossa versão do framework.
Importante : No 'Gerenciador de Serviços de Informações da Internet' clique com
o botão direito do mouse no item 'Filtros ISAPI' e em seguida 'Abrir Recurso'
para visualizar os frameworks que estão instalados na sua máquina.
No meu IIS apareceu tanto o framework 2.0 quanto o 4.0 tanto em 32 como em 64 bits.
Este item define quem está ou não autorizado a acessar seu site.
Se ele é público a autorização esta ligada a 'Todos' usuários. Contudo se há alguma autenticação é necessário alterar ou criar autorizações específicas para eles.
Para alterar ou corrigir autorizações vá no 'Gerenciador de Serviços de Informações da Internet' e clicar com o botão do mouse em 'Regras de Autorização' e selecionar o item 'Abrir Recurso'.
Você vai encontrar lá o item Modo:Permitir, Usuários:Todos os usuários, Funções:, Verbos:, Tipo de Entrada : Herdado.
Se for o IIS local de sua casa e não houver o item a seguir você vai precisar adicionar exatamente o mesmo item mas com o Tipo de Entrada : Local.
Clique em qualquer lugar da página escolha o item 'Adicionar Regra de Permissão'. Selecione 'Todos os Usuários' e a seguir clique no botão 'OK'.
Deve ter sido adicionado o item Modo:Permitir, Usuários:Todos os usuários, Funções:, Verbos:, Tipo de Entrada : Local.
Reinicie o Servidor IIS sempre que mudar as autorizações.
Log Files
Se você está quebrando a cabeça com a configuração do IIS um recurso que pode ser de grande ajuda são os Log-Files do IIS. Neles todas as solicitações ao servidor IIS são registradas.
A pasta que os Log-Files são armazenados no seu micro é a inetpub\logs\LogFiles\W3SVC1.
O Log File é iniciado quando o servidor IIS é iniciado e fechado quando o servidor IIS é fechado. Portanto se você quiser limpar arquivos ou fazer alguma alteração que mexa com o arquivo de log do IIS corrente primeiramente precisa parar o serviço IIS.
Uma resposta típica é gravada no Log no seguinte formato :
2021-03-25 15:13:28 ::1 GET /SiteRefTec/ASP+NET+WEBFORMS/Dados/DataList/DataList.aspx - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/89.0.4389.90+Safari/537.36 http://localhost/SiteRefTec/ASP%20NET%20WEBFORMS/09-Renderiza%C3%A7%C3%A3o%20objetos.html 404 17 50 10
2021-03-25 15:13:28 ::1 GET /favicon.ico - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/89.0.4389.90+Safari/537.36 http://localhost/SiteRefTec/ASP%20NET%20WEBFORMS/Dados/DataList/DataList.aspx 200 0 0 3
No final de cada linha temos o status da página. 200 significa que a página foi encontrada
e esta tudo ok até aqui.
Se tem dúvida veja
ou esta aqui.
200 significa que a página foi encontrada mas se é uma página ASP NET precisa da permissão, autorização, framework correto para ser aberta e o erro poderá estar em elementos que suportam a aplicação.
Neste momento temos uma página asp net rodando perfeitamente no root do nosso iis. Contudo para termos certeza que tudo está de acordo no nosso servidor ainda precisamos fazer mais alguns testes e esclarecer algumas dúvidas.
Temos uma página ASP NET funcionando perfeitamente no root do site. E se essa página não estivesse no root mas sim numa sub-pasta do root nós teríamos acesso a ela ?
Para fazer esse teste criei uma pasta e copiei minha app que esta funcionando perfeitamente no root para dentro dela. Abri o browser e digitei na url : localhost/pasta/pagina.aspx que no meu caso ficou assim : localhost/TesteAspNet/Teste Asp Net.aspx.
Digitei a url acima e a página abriu perfeitamente. Portanto se eu depositar uma aplicação asp net em sub-pastas do site ela irá funcionar perfeitamente.
A minha dúvida pode ser a de muitos e é melhor fazermos um teste.
Fiz uma página bem simples em html :
<html>
<head>
<title>Teste HTML Chamando ASP NET</title>
</head>
<body>
<a href="TesteAspNet/Teste Asp Net.aspx">Clique aqui para testar</a>
</body>
</html>
Copiei o documento para o root do meu IIS e mudei o nome da página para index.html para que o servidor encontrasse ela no root.
Fui no browser e digitei na url : localhost.
Veio o conteúdo da minha página index.html que nada mais é que um link para
TesteASPNET/Teste ASP NET.aspx.
Clicando no link a página aspx abriu perfeitamente e exibiu o nome da minha máquina.
Portanto uma página HTML consegue chamar uma página ASPX sem problemas.
O contrário, uma página ASPX chamando uma página HTML não há razões para ter dúvida que irá
funcionar porque chamamos uma página html em nossos teste e funcionou e as páginas html
não tem os conceitos de 'autorização' nem de 'autenticação' das páginas asp net.
Se você está no seu IIS local na sua máquina de casa deve estar operando com o Nível de confiança 'Pleno'('Full internal') mas no servidor IIS ligado 24hs na Internet o nível máximo de confiança é o 'Médio'('Medium').
Para alterar o nível de confiança do seu servidor IIS vá em
'Gerenciador de Serviços de Informações da Internet', clique com o botão direito do mouse
em 'Níveis de Confiança' e clique em 'Abrir Recurso' e selecione o nível de confiança desejado:
1-Full(internal) : Default.
2-High (web_hightrust.config)
3-Medium (web_mediumtrust.config)
4-Low (web_lowtrust.config)
5-Minimal (web_minimaltrust.config)
Note que quanto menor for o nível de confiança seu site estará mais seguro mas isso demanda mais autenticações ( o que a gente chama de hand-shaking entre os componentes de sergurança ) e isso é um custo razoável em sites de alta utilização.
Para que você não perca tempo pesquisando a solução para problemas comuns com o IIS apresentamos as soluções para eles aqui
Não se esqueça de colocar no arquivo web.config a linha <customErrors mode="Off" /> dentro da tag <system.web> . Com este parâmetro os erros deixam de ser exibidos na forma amigável e aí teremos as mensagens de erro com informações para facilitam a depuração do Erro. Não se esqueça que esse parâmetro não vale para os servidores de produção.
Pelo 'estilo' página podemos dizer de cara que o erro é do Servidor IIS e não do ASP NET.
Este erro ocorreu porque a segurança barrou o processo e parece não ter acesso a pasta dos arquivos ou
coisa parecida.
Maneira 1 : Uma maneira deste erro ocorrer é a pasta localhost do IIS estar completamente vazia, sem nada. Ao abrir o browser e digitar localhost será isto que obteremos.
Outra maneira deste erro ocorrer é abrir o browser e digitar 'localhost'.
Note que NÃO digitamos o nome do arquivo html ou asp net.
Sendo assim o IIS vai na lista de nomes de arquivos padrão
( veja Item 23 : Documento padrão ) e
procurar se na pasta localhost tem algum deles.
Se não encontrar nenhum arquivo que com os nomes padrões o servidor IIS irá verificar se o usuáro tem o direito de 'Listar o conteúdo da pasta'. Se tiver será exibido uma listagem com todos arquivos da pasta e subpastas, praticamente como o 'Gerenciador de arquivos do windows'
Contudo se os recursos acima falharem o IIS retornará este erro (403.14-Forbiden).
A razão mais comum para este error ocorrer seria que o arquivo não foi encontrado e o erro seria o 404.
Contudo a gente não digitou um nome de arquivo mas sim apenas a pasta na url e o erro não foi
somente 'arquivo não encontrado' mas sim na segurança que barrou a listagem do conteúdo da pasta.
Este é o erro mais comum. Não foi encontrado o nome do arquivo na lista de arquivos do servidor IIS.
Este erro pode ocorrer simplesmente por esquecermos de colocar a extensão do nome do arquivo, por exemplo,
ao invés de eu digitar Default.aspx eu digitei apenas Default. Quando a gente envia o nome do arquivo
para o servidor IIS deve ser completo, com extensão e tudo.
O erro ocorreu porque não conseguiu carregar app asp net dentro de uma sub-pasta do root.
Neste caso eu peguei uma app que roda perfeitamente no root do site e movi para dentro de uma pasta.
Foi fazer isso e a app parou de funcionar.
Este erro ocorreu porque a pasta bin que contém as dlls da minha página asp net tem que ficar na pasta root e NÃO pode ser movida para dentro de uma sub-pasta da pasta root.
Obtive esse erro quando fiz uma nova app em framework 2.0 e enviei ao servidor que está configurado para rodar o framework default 4.0.
Agora ocorreu um erro e ele esta camuflado pela configuração default da aplicação.
Para conseguir visualizar o erro você precisa pedir para sua aplicação exibir o erro real, sem camuflar.
Abra o arquivo web.config de sua app e adicione logo apos a tag <system.web>
o seguinte conteúdo :
<customErrors mode="Off" />